The invention relates to an agent system, in particular an agent system for mobile agents, to a computer network having a plurality of computers networked by data lines and to a method for loading an agent system from a host computer onto a client computer.
Agents are autonomous, cooperative software units comprising code and data. They are independently operating software units which require no continual interaction with the user. There are both static and mobile agents.
Mobile agents are known, by way of example, from U.S. Pat. No. 5,603,031 and from the book Software Agents, Bradshaw Jeffrey, Menlo Park, Calif.: AAAI Press/The MIT Press, 1996. The chapter on mobile agents in this book can be retrieved in a slightly modified version on the Internet at the address http://www.generalmagic.com/technology/techwhitepaper.html.
Mobile agents are programs which can be active at various stations in a computer network and can change their location in the computer network. Conventionally, programs in a network are loaded from one computer onto another computer while they are not active. By contrast, mobile agents are first activated and automatically change their position in the network while they are active.
This small but fundamental difference with respect to conventional programs has considerable effects on the type of applications on the mobile agents in the network. The agents are created at a particular station in the network, which involves stipulating the functions needing to be performed by the agent, so that the agent, having been transmitted to another station in the network, represents the previous station in the network and performs the appropriate functions. This means that functions can be stipulated at one station in the network which are performed at another station in the network. In principle, this is also possible with conventional systems, with this requiring a permanent exchange of information in the network between the two stations so that the station at which the appropriate control operations are stipulated transmits them to the station at which they are performed.
By contrast, the mobile agents require no such control operations, since their functions are stipulated once in advance and are then performed automatically. This significantly reduces the data throughput in the network, with any desired operations being able to be performed at the stations remote from the task issuer.
However, the agents do not always need to operate fully detached from their initiator, but rather can set up communication channels thereto or also to other stations in the network.
When moving from one station in a network to another station in the network, the mobile agents execute a migration command (e.g. “go”). Such a command requires a destination description containing the name, address or type of the station to which the agent is intended to move, or a combination of these. Different stations do not always need to be arranged at different computers in the network. It is also possible for agents to be active at different stations within one computer.
Mobile agents can also multiply, so that they perform their functions independently of one another at different stations.
Mobile agents are frequently used for collecting predetermined data, some of which are evaluated in situ, so that an already preprocessed result is sent to the original task issuer.
One possible application for such mobile agents arises, by way of example, when a purchaser of a particular object receives a low price guarantee from the vendor. The purchaser can then send out one or more mobile agents which independently obtain corresponding offers from other suppliers, possibly monitor them over a certain period of time and send them to the purchaser, so that he can compare them with the price offered by the vendor.
Other, known mobile agents and agent systems are marketed under the names Aglets, Voyager and Concordia and can generally be obtained over the Internet.
So that the mobile agents on the individual computers in the network can be active, these computers need to have a respective “agent system”. An agent system is a collection of service programs which need the respective agents for their tasks. These service programs generally comprise an agent manager connected to other service programs, so that the active mobile agents can fall back on the respective computer resources and can migrate from one agent system in the network to another agent system in the network via network interfaces. Generally, an agent system controller is provided which regulates the execution of the agent system on the respective computer.
These agent systems form the stations in the network at which the agents can become active.
Such agent systems are generally written in a platform-independent computer language, such as JAVA, so that they can run on any computer systems.
The transfer of the agents in the network while they are active creates a new programming paradigm according to which the program code itself is moved to the data needing to be processed instead of data being transported to the processing code or the processing code needing to be loaded in the inactive state onto the respective computer.
Agents are generally relatively small programs which are sent out and exploit the intelligence available in situ. Since mobile agents can also perform their tasks when there is no permanent network connection between the individual computers, they are ideally suited to use on mobile computers, which are generally not permanently connected to a network.
However, the agent systems known to date are too extensive for them to be able to be installed on arbitrary simple mobile computers.
Within the context of the present patent application, the term computer also covers simple process computers equipped merely with a minimal hardware configuration (processor, memory and display). Such simple process computers are integrated on a single chip, for example.